package com.jingyong.infosite.web;

import java.util.List;

import com.jingyong.infosite.dto.request.PlatformSearchRequest;
import com.jingyong.infosite.dto.response.PlatformHotResponse;
import com.jingyong.infosite.dto.response.PlatformSearchResponse;
import com.jingyong.infosite.service.PlatformService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;

import com.fasterxml.jackson.core.type.TypeReference;
import com.jingyong.infosite.entities.平台;
import com.jingyong.infosite.entities.平台选项;
import com.jingyong.infosite.util.JsonUtil;

import io.swagger.annotations.Api;

@RestController
@RequestMapping(path = "platforms")
@Api("平台数据")
public class PlatformsController {
	@Autowired
	private PlatformService platformService;

	private static final String OPTIONS_JSON = "{\"热门方案\":[\"不限\",\"评级百强\",\"银行存管\",\"加入协会\",\"ICP认证\",\"之家考察\",\"融资平台\"],\"参考利率\":[\"不限\",\"<=8%\",\"8%～10%\",\"10%～12%\",\"12%～16%\",\">=16%\"],\"平台背景\":[\"不限\",\"国资控股\",\"国资参股\",\"上市控股\",\"上市参股\",\"风投系\",\"银行系\",\"民营系\"],\"运营状态\":[\"不限\",\"运营中\",\"停业或转型\",\"问题平台\"],\"标的类型\":[\"不限\",\"新手标\",\"理财计划\"],\"投资期限\":[\"不限\",\"天标\",\"1月标\",\"2月标\",\"3月标\",\"4-6月标\",\"6-12月标\",\"12月以上标\"],\"业务类型\":[\"不限\",\"个人信贷\",\"企业信贷\",\"车贷\",\"房贷\",\"供应链金融\",\"融资租赁\",\"票据\",\"艺术品质押\",\"农村金融\",\"消费金融\"],\"待还余额\":[\"不限\",\"<=2亿\",\"2-10亿\",\"10-50亿\",\">=50亿\"],\"近30日成交\":[\"不限\",\"<=1亿\",\"1-5亿\",\"5-10亿\",\">=10亿\"],\"债权转让\":[\"不限\",\"随时转让\",\"1月后可转让\",\"3月后可转让\",\"1年后可转让\",\"不可转让\"],\"保障模式\":[\"不限\",\"风险准备金\",\"小贷公司\",\"融资性担保公司\",\"非融资性担保公司\",\"平台垫付\",\"其他\"],\"自动投标\":[\"不限\",\"支持\",\"不支持\"],\"上线时间\":[\"不限\",\"2018年\",\"2017年\",\"2016年\",\"2015年\",\"2014年\",\"2013年\",\"2012年\",\"2011年\",\"2011年前\"],\"注册地\":[\"不限\",\"北京\",\"上海\",\"广东\",\"浙江\",\"江苏\",\"山东\",\"安徽\",\"重庆\",\"福建\",\"甘肃\",\"广西\",\"贵州\",\"海南\",\"河北\",\"河南\",\"黑龙江\",\"湖北\",\"湖南\",\"吉林\",\"江西\",\"辽宁\",\"内蒙古\",\"宁夏\",\"青海\",\"山西\",\"陕西\",\"四川\",\"天津\",\"新疆\",\"云南\"],\"注册资金\":[\"不限\",\"<=999万\",\"1000-3000万\",\"3000-9999万\",\">=1亿\"]}";
	private static final String PLATFORMS_JSON = "[{\"注册资金\":\"10000万元\",\"银行存管\":\"用户资金存管 存管机构为 民生银行\",\"融资记录\":[\"14年01月 获得挚信资本领投（美元）13000.00万元融资\"],\"监管协会\":[\"2016年03月25日 加入中国互联网金融协会任会员单位\"],\"ICP号\":\"京ICP证100953号\"}]";

//	@RequestMapping(path = "options", method = RequestMethod.GET)
	public 平台选项 getOptions() {
		return JsonUtil.convertStringToBean(OPTIONS_JSON, 平台选项.class);
	}

//	@RequestMapping(path = "", method = RequestMethod.GET)
	public List<平台> getPlatforms(@RequestParam(required = false) 平台选项 q) {
		return JsonUtil.convertStringToBean(PLATFORMS_JSON, new TypeReference<List<平台>>() {
		});
	}

	/**
	 * 检索符合条件的平台
	 * @param req req
	 * @return JsonString
	 */
	@RequestMapping(path = "", method = RequestMethod.POST, consumes = {
			MediaType.APPLICATION_JSON_UTF8_VALUE })
	public PlatformSearchResponse getPlatformByCondition(@RequestBody PlatformSearchRequest req) {
		return platformService.query(req);
	}

	/**
	 * 获取平台详情
	 * @param name
	 * @return
	 */
	@RequestMapping(path = "detail/{name}", method = RequestMethod.GET)
	public Object getLoanPlatDetail(@PathVariable String name) {
		return platformService.getLoanPlatDetail(name);
	}
	/**
	 * 首页推荐平台
	 * @return JsonString
	 */
	@RequestMapping(path = "hot", method = RequestMethod.POST, consumes = {MediaType.APPLICATION_JSON_UTF8_VALUE})
	public PlatformHotResponse getPlatformHot() {
		return platformService.queryPlatformHot();
	}
}
